This invention is in the field of information and communications, and is more specifically directed to improved processes, circuits, devices, and systems for information and communication processing, and processes of operating and making them. Without limitation, the background is further described in connection with wireless communications processing.
Wireless communications of many types have gained increasing popularity in recent years. The mobile wireless (or “cellular”) telephone has become ubiquitous around the world. Mobile telephony has recently begun to communicate video and digital data, in addition to voice. Wireless devices, for communicating computer data over a wide area network, using mobile wireless telephone channels and techniques are also available.
The market for portable devices such as cell phones and PDAs (personal digital assistants) is expanding with many more features and applications. The increased number of application on the cell phone will increasingly demand multiple concurrent running applications. More features and applications call for microprocessors to have high performance but with low power consumption. Multi-threading can contribute to high performance in this new realm of application. Branch prediction accuracy should desirably not suffer if multi-threading is used, since impaired branch prediction accuracy in a multi-threading process could reduce the instruction efficiency of a superscalar processor or super-pipeline processor and increase the power consumption. Clearly, keeping the power consumption for the microprocessor and related cores and chips near a minimum, given a set of performance requirements, is very important in many products and especially portable device products.
Wireless data communications in wireless local area networks (WLAN), such as that operating according to the well-known IEEE 802.11 standard, has become especially popular in a wide range of installations, ranging from home networks to commercial establishments. Short-range wireless data communication according to the “Bluetooth” technology permits computer peripherals to communicate with a nearby personal computer or workstation.
Security is important in both wireline and wireless communications for improved security of retail and other business commercial transactions in electronic commerce and wherever personal and/or commercial privacy is desirable. Added features and security add further processing tasks to the communications system. These potentially mean added software and hardware in systems where cost and power dissipation are already important concerns.
Improved processors, such as RISC (Reduced Instruction Set Computing) processors and digital signal processing (DSP) chips and/or other integrated circuit devices are essential to these systems and applications. Increased throughput allows more information to be communicated in the same amount of time, or the same information to be communicated in a shorter time. Reducing the cost of manufacture, increasing the efficiency of executing more instructions per cycle, and addressing power dissipation without compromising performance are important goals in RISC processors, DSPs, integrated circuits generally and system-on-a-chip (SOC) designs. These goals become even more important in hand held and mobile applications where small size is so important, to control the cost and the power consumed.
As an effort to increase utilization of microprocessor hardware and improve system performance, multi-threading is used. Multi-threading is a process by which two or more independent programs, each called a “thread,” interleave execution in the same processor. A little reflection shows that multi-threading is not a simple problem. Different programs may write to and read from the same registers in a register file. The execution histories of the programs may be relatively independent so that global branch prediction based on history patterns of Taken and Not-Taken branches in the interleaved execution of the programs would confuse the history patterns and degrade the performance of conventional branch prediction circuits. Efficiently handling long-latency cache misses can pose a problem. These and other problems confront attempts in the art to provide efficient multi-threading processors and methods.
It would be highly desirable to solve these and other problems as well as problems of how to perform multithreaded scoreboarding to efficiently and economically determine whether to issue an instruction. Also, solutions to problems of how to forward data to an instruction in the pipeline from another instruction in the pipeline in an optimized manner would be highly desirable in a multithreaded processor. All these problems need to be solved with respect to CPI (cycles per instruction) efficiency and operating frequency and with economical real-estate efficiency in superscalar, deeply pipelined microprocessors and other microprocessors.
It would be highly desirable to solve any or all of the above problems, as well as other problems by improvements to be described hereinbelow.